#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <vector>

using namespace std;

class CRabinKarpSearcher {

private:
	long long HASH;
	string patternString;

	bool isPrime(long long N){
		if(N < 2){
			return false;
		}
		for(long long i = 2; i * i <= N; i++){
			if(N % i == 0){
				return false;
			}
		}
		return true;
	}
	
public:
	
    explicit CRabinKarpSearcher( const string& _patternString ){
		HASH = 100 + rand() % 1000;
		while(!isPrime(HASH)){
			HASH++;
		}
		patternString = _patternString;
	}
    //Выводит output позиции от начала строки whereToSearch, начиная с которых в whereToSearch встречается patternString
    //При использовании можно читать файл по одной строке и скармливать их в этот механизм
    void SearchInString( const string& whereToSearch, vector<int>& output ) const {
		output.clear();
		if((int)patternString.size() > (int)whereToSearch.size()){
			return;
		}
		vector <long long> p, h;
		p.resize((int)whereToSearch.size() + 1);
		h.resize((int)whereToSearch.size());
		p[0] = 1;
		for(int i = 1; i <= (int)whereToSearch.size(); i++){
			p[i] = p[i - 1] * HASH;
		}
		for(int i = 0; i < (int)whereToSearch.size(); i++){
			h[i] = (i > 0 ? h[i - 1] : 0) + p[i] * whereToSearch[i];
		}
		long long need_hash = 0;
		for(int i = 0; i < (int)patternString.size(); i++){
			need_hash += p[i] * patternString[i];
		}
		need_hash *= p[(int)whereToSearch.size()];
		for(int i = 0; i + (int)patternString.size() - 1 < (int)whereToSearch.size(); i++){
			long long cur_hash = h[i + (int)patternString.size() - 1] - (i > 0 ? h[i - 1] : 0);
			cur_hash *= p[(int)whereToSearch.size() - i];
			if(cur_hash == need_hash){
				output.push_back(i + 1);
			}
		}
	}
	
};

int main(){
	string s;
	cin >> s;
	CRabinKarpSearcher searcher(s);
	cin >> s;
	freopen(s.c_str(), "r", stdin);
	vector <int> output;
	int shift = 0;
	while(getline(cin, s)){
		vector <int> add;
		searcher.SearchInString(s, add);
		for(int i = 0; i < (int)add.size(); i++){
			output.push_back(add[i] + shift);
		}
		shift += (int)s.size();
	}
	output.resize(min((int)output.size(), 10));
	for(int i = 0; i < (int)output.size(); i++){
		cout << output[i] << endl;
	}
	return 0;
}
